במרבית העסקים הפועלים כיום, נאגרים הנתונים העיסקיים בבסיסי נתונים רלציוניים, או טבלאיים, או – RDB, ר"ת של Relational Data Base.
לא חשוב אם אתם עובדים עם חשבשבת, פריוריטי, סאפ, או כל תוכנה אחרת, מתחת למכסה המנוע שלה שוכן RDB.
במאמר זה אנסה לתמצת ככל האפשר את הרעיון ואת דרך היישום של ה-RDB.
בסיסי נתונים אלו מורכבים מטבלאות, שכל אחת מהן מורכבת מרשומות (נקראות גם שורות) ושדות (נקראים גם עמודות).
כמו-כן, ה-RDB מגדיר כיצד הטבלאות מקושרות בינהן.
לדוגמא, כמעט לכל עסק יש לקוחות, להם הוא מוכר מוצרים או שירותים.
בטבלת המכירות, לדוגמא, יהיו לכל הפחות השדות הבאים: לקוח, מוצר, תאריך, כמות ומחיר. כמובן שסביר שיהיו שדות נוספים, כגון: כמות בונוס, הנחה, אחוז הנחה, תאריך אספקה וכו', אך השדות שציינתי חייבים להיות כדי לייצג מכירה.
אם בעל העסק היה צריך להזין בכל מכירה את פרטי הלקוח ופרטי המוצר, משימה זו היתה גוזלת זמן רב, ממלאת את הדיסקים בנתונים רבים וגורמת לקושי ממשי באיחזור הנתונים (אם הלקוח הינו חיים משה, ופעם היו מקלידים אותו כחיים משה ופעם כמשה חיים, התוכנה לא היתה יכולה להבין שמדובר באותו לקוח). כמו כן, היינו נדרשים למלא בכל הזמנה מחדש את כתובת הלקוח, פרטי התקשרות וכד'. בזבוז עצום של זמן ושל משאבי אחסון.
על מנת לפתור בעיה זו, נקים טבלה נוספת: טבלת לקוחות. טבלה זו תכלול לכל הפחות את השדות הבאים: קוד לקוח, שם לקוח, כתובת. שוב, במערכת אמיתית יהיו גם נתונים כמו כתובת למשלוח דואר, כתובת אספקה, מספר ת"ז או ח"פ של הלקוח, שם איש קשר, תנאי אשראי, טלפון, סלולרי, פקס, אימייל… ועוד שדות רבים שיאפשרו לבעל העסק לדעת כמה שיותר פרטים על הלקוח.
כעת, כל מה שנצטרך להזין בהזמנה הוא קוד הלקוח. התוכנה (באמצעות ה-RDB) כבר תדע מיהו הלקוח ומה הכתובת אליה צריך לשלוח את הסחורה ואת החשבונית.
אבל רגע, בואו נחשוב על הכתובת. הרי אם הלקוח מתל אביב, אפשר לכתוב תל אביב, אבל גם: ת"א, תל אביב יפו, תל-אביב, תל אביב-יפו… מה יקרה כשנרצה דו"ח שמציג את כל הלקוחות מתל אביב?
אם חשבת "נקים טבלת ערים" – כל הכבוד, צדקת! בטבלה זו יהיו לכל הפחות השדות הבאים: קוד עיר ושם עיר, ואז נוכל להקליד ברשומת הלקוח, בשדה עיר, את קוד העיר, שיהיה זהה לכל לקוח מתל אביב.
באופן דומה, גם פריטים יוקמו בטבלת פריטים, שתכלול לכל הפחות את השדות הבאים: קוד פריט (מק"ט), ותאור פריט, ובמציאות תכלול גם נתונים כגון: ברקוד, מידות, משקל, תמונה, תאור מורחב, ספק, מחיר קטלוגי, שיוך לקטגוריה, ועוד ועוד.